package cn.cdeden.resource.api.domain;

import cn.cdeden.common.oss.enumd.OssModuleType;
import jakarta.validation.constraints.NotNull;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serial;
import java.io.Serializable;

/**
 * 文件信息
 *
 * @author ruoyi
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class RemoteFileDto implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 文件编号主键 传了代表生成版本
     */
    private String storageId;

    /**
     * 文件的访问地址 传了代表生成版本
     **/
    private String url;


    /**
     * 删除旧版本
     */
    private boolean deleteOldVersion  = false ;

    /**
     * 文件名
     */
    private String name;

    /**
     * 原来的文件名  带文件的后缀
     **/
    @NotNull(message = "文件名,不可以为空")
    private String originalFilename;

    /**
     * 文件类型
     */
    @NotNull(message = "文件类型,不可以为空")
    private String contentType;

    /**
     * 文件数据
     **/
    private byte[] file;

    /**
     * 文件封面
     **/
    private byte[] coverFile;

    /**
     * 文件封面类型
     */
    private String coverContentType;

    /**
     * 文件封面后缀
     */
    private String coverSuffix;



    /**
     * 文件库 桶位置
     **/
    @NotNull(message = "桶,不可以为空")
    private String bucketName;


    /**
     * 属于的文件模块
     **/
    @NotNull(message = "文件模块,不可以为空")
    private OssModuleType moduleType;

}
